From: Florian Müllner Date: Sun, 13 May 2012 15:11:06 +0000 (+0200) Subject: userMenu: Offer "Switch Session" item on multi-session systems X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~6572 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=ca26347dea8adb77205021a42618aeaa4103d353;p=gnome-shell.git userMenu: Offer "Switch Session" item on multi-session systems Since commit 518282e169, we hide both "Switch User" and "Log out" on single-user systems. However, if there is more than one session available, users may still want to get back to the login manager to change sessions. Add both "Log out" and "Switch Session" items in that case. https://bugzilla.gnome.org/show_bug.cgi?id=675802 --- diff --git a/js/ui/userMenu.js b/js/ui/userMenu.js index d72cbc749..07c0a1960 100644 --- a/js/ui/userMenu.js +++ b/js/ui/userMenu.js @@ -1,6 +1,7 @@ // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- const AccountsService = imports.gi.AccountsService; +const GdmGreeter = imports.gi.GdmGreeter; const Gio = imports.gi.Gio; const GLib = imports.gi.GLib; const Lang = imports.lang; @@ -549,14 +550,20 @@ const UserMenuButton = new Lang.Class({ _updateSwitchUser: function() { let allowSwitch = !this._lockdownSettings.get_boolean(DISABLE_USER_SWITCH_KEY); - this._loginScreenItem.actor.visible = allowSwitch && - this._userManager.can_switch() && - this._userManager.has_multiple_users; + let multiUser = this._userManager.can_switch() && this._userManager.has_multiple_users; + let multiSession = GdmGreeter.get_session_ids().length > 1; + + this._loginScreenItem.label.set_text(multiUser ? _("Switch User") + : _("Switch Session")); + this._loginScreenItem.actor.visible = allowSwitch && (multiUser || multiSession); }, _updateLogout: function() { let allowLogout = !this._lockdownSettings.get_boolean(DISABLE_LOG_OUT_KEY); - this._logoutItem.actor.visible = allowLogout && this._userManager.has_multiple_users; + let multiUser = this._userManager.has_multiple_users; + let multiSession = GdmGreeter.get_session_ids().length > 1; + + this._logoutItem.actor.visible = allowLogout && (multiUser || multiSession); }, _updateLockScreen: function() {